package business.personne;

import java.util.List;

import dao.IDao;

import entites.Domaine;
import entites.Mention;
import entites.Parcours;
import entites.Personne;
import entites.UniteEnseignement;

public class PersonneManager implements IPersonneManager 
{
	// couche [dao]
	private IDao dao;

	public IDao getDao() {
		return dao;
	}

	public void setDao(IDao dao) {
		this.dao = dao;
	}

	
	//====================================================PERSONNE==========================================================
	
	public void deletePersonne(String code) 
	{		
		dao.deletePersonne(code);
	}

	
	public void deletePersonnes(Personne[] personnes) {
		
		for (Personne p : personnes) {
			dao.deletePersonne(p.getCode());
		}
	}

		
	public Personne insertPersonne(Personne personne) {
		
		return dao.savePersonne(personne);
	}

		
	public Personne[] insertPersonnes(Personne[] personnes) {
		
		Personne[] personnes2 = new Personne[personnes.length];
		for (int i = 0; i < personnes.length; i++) {
			personnes2[i] = dao.savePersonne(personnes[i]);
		}
		return personnes2;
	}
	
	
	public Personne selectPersonneByCode(String code) 
	{
		return dao.findPersonne(code);
	}

	
	public List<Personne> selectPersonnes() {
		
		return dao.findAllPersonne();
	}

	
	public List<Personne> selectPersonnesByNom(String modele) {
		
		return dao.findAllPersonneLike(modele);
	}
	
		
	public Personne updatePersonne(Personne personne) {
		
		return dao.updatePersonne(personne);
	}

		
	public Personne[] updatePersonnes(Personne[] personnes) {
		
		Personne[] personnes2 = new Personne[personnes.length];
		for (int i = 0; i < personnes.length; i++) {
			personnes2[i] = dao.updatePersonne(personnes[i]);
		}
		return personnes2;
	}	
	
	
	public List<Domaine> FindDomainesByResponsable(Personne personne){
	  return dao.FindDomainesOfResponsable(personne);
	}
	
	public List<UniteEnseignement> FindUeByResponsable(Personne personne){
	  return dao.FindUeOfResponsable(personne);
	}
	
	public List<Parcours> FindParcoursByResponsable(Personne personne){
		  return dao.FindParcoursOfResponsable(personne);
		}
	
	
	
	
}
